package com.lu.manage.modular.system.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.lu.manage.core.common.node.TreeNodes;
import com.lu.manage.modular.system.model.User;

import java.util.List;
import java.util.Map;

public interface UserService extends IService<User> {

    List<TreeNodes> getUserMenuNodes(List<String> roleList);

    /**
     * 刷新当前登录用户的信息
     * @throws Exception
     */
    void refreshCurrentUser() throws Exception;


    /**
     * 新增用户
     * @param user
     * @return
     * @throws Exception
     */
    User add(User user) throws Exception;

    /**
     * 修改用户
     * @param user
     * @throws Exception
     */
    void update(User user) throws Exception;

    /**
     * 删除用户
     * @param userId
     */
    void delete(String userId) throws Exception;

    /**
     * 用户列表分页
     *
     * @param map
     * @return
     */
    Object listPage(Map<String, Object> map);

    /**
     * 给用户 分配角色
     * @param id
     * @param roleIds
     */
    void setRoles(String id, String roleIds);

    /**
     * 更改密码，新旧密码校验
     * @param oldPassword
     * @param newPassword
     */
    void changePwd(String oldPassword, String newPassword) throws Exception;
}
